package br.com.gaspar.batepapo.mb;

import java.io.Serializable;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;

import br.com.gaspar.batepapo.bo.iface.IBatePapoBO;
import br.com.gaspar.batepapo.modelo.BatePapo;
import br.com.gaspar.batepapo.modelo.Mensagem;

@ManagedBean(name="BatePapoMB")
@ApplicationScoped
public class BatePapoMB implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@EJB
	private IBatePapoBO bo;
	
	private BatePapo batePapo = new BatePapo();
	
	private Mensagem mensagem = new Mensagem();
	
	public void fechar(){
		getBo().fecharSala(getBatePapo().getCodigo());
		setBatePapo(null);
		setMensagem(null);
	}
	
	public void enviarMensagem(){
/*		if(getBatePapo().getMensagens().size() == 0){
			setBatePapo(getBo().getSala(getBatePapo().getCodigo()));
		}*/
		getBatePapo().adicionarMensagem(getMensagem().getConteudo(), getMensagem().getUsuario());
		setMensagem(new Mensagem());
	}
	
	public List<Mensagem> getMensagens(){
		List<Mensagem> mensagens = null;
		
		if(getBo().existeChat(getBatePapo().getCodigo())){
			mensagens = getBo().getSala(getBatePapo().getCodigo()).getMensagens();
		}
		
		return mensagens;
	}
	
	public Integer getQuantidadeAtendentes(){
		return getBo().getAtendentes().size();
	}
	
	public Boolean getExisteChat(){
		return getBo().existeChat(getBatePapo().getCodigo());
	}
	
	public IBatePapoBO getBo() {
		return bo;
	}

	public void setBo(IBatePapoBO bo) {
		this.bo = bo;
	}

	public BatePapo getBatePapo() {
		return batePapo;
	}

	public void setBatePapo(BatePapo batePapo) {
		this.batePapo = batePapo;
	}

	public Mensagem getMensagem() {
		return mensagem;
	}

	public void setMensagem(Mensagem mensagem) {
		this.mensagem = mensagem;
	}
	

}
